home *** CD-ROM | disk | FTP | other *** search
- #!/usr/sbin/perl
- # -*- perl -*-
- #
- # Print documents with long lines.
- # Copyright (c) 1996 Markku Rossi
- #
- # Author: Markku Rossi <mtr@iki.fi>
- #
-
- #
- # This file is part of GNU enscript.
- #
- # This program is free software; you can redistribute it and/or modify
- # it under the terms of the GNU General Public License as published by
- # the Free Software Foundation; either version 2, or (at your option)
- # any later version.
- #
- # This program is distributed in the hope that it will be useful,
- # but WITHOUT ANY WARRANTY; without even the implied warranty of
- # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- # GNU General Public License for more details.
- #
- # You should have received a copy of the GNU General Public License
- # along with this program; see the file COPYING. If not, write to
- # the Free Software Foundation, 59 Temple Place - Suite 330,
- # Boston, MA 02111-1307, USA.
- #
-
- $enscript = "enscript";
-
- $program = $0;
- $program =~ s/.*\///g;
-
- sub usage {
- warn "Usage: $program [ENSCRIPT_OPTION]... [FILE]...\n";
- }
-
- # Handle arguments.
- $args = "";
- $files = "";
- while ($arg = shift(@ARGV)) {
- if ($arg eq "--help") {
- &usage;
- exit 0;
- } elsif ($arg eq "--version") {
- warn "sliceprint 1.0\n";
- exit 0;
- } elsif ($arg =~ /^-p(.+)$/
- || $arg =~ /^-o(.+)$/
- || $arg =~ /^--output=(.+)$/) {
- $output_file = $1;
- } elsif ($arg eq "-p" || $arg eq "-o") {
- $output_file = shift(@ARGV);
- } elsif ($arg =~ /^-/) {
- $args .= " $arg";
- } else {
- $files .= " $arg";
- }
- }
-
- # Check if output file is "-".
- if (defined($output_file) && $output_file eq "-") {
- die "$program: output file can't be stdout\n";
- }
-
- $slice = 0;
- while (1) {
- $slice++;
- if (defined($output_file)) {
- $cmd = "$enscript" . $args . " --slice=$slice -p"
- . $output_file . "." . $slice . " " . $files;
- } else {
- $cmd = "$enscript" . $args . " --slice=$slice" . $files;
- }
- print "printing slice $slice...\n";
- $result = `$cmd 2>&1`;
- if ($result !~ ".*lines were.*") {
- last;
- }
- }
-